package cn.bugstack.domain.order.adapter.port;

import cn.bugstack.domain.order.model.entity.MarketPayDiscountEntity;
import cn.bugstack.domain.order.model.entity.ProductEntity;

import java.util.Date;

public interface IProductPort {
    /**
     * 按产品 ID 查询产品
     *
     * @param productId 产品 ID
     * @return product 实体
     */
    ProductEntity queryProductByProductId(String productId);

    /**
     * Lock  订单
     *
     * @param userId     用户 ID
     * @param teamId     团队 ID
     * @param activityId 活动 ID
     * @param productId  产品 ID
     * @param orderId    订单 ID
     * @return Market Pay 折扣实体
     */
    MarketPayDiscountEntity lockMarketPayOrder(String userId, String teamId, Long activityId, String productId, String orderId);

    /**
     * 结算支付订单
     *
     * @param userId    用户 ID
     * @param orderId   订单 ID
     * @param orderTime 订购时间
     */
    void settlementMarketPayOrder(String userId, String orderId, Date orderTime);

}
